// pages/search/search.js
import request from '../../utils/request'
// 节流的开关
var isSend = false
Page({

  /**
   * 页面的初始数据
   */
  data: {
    searchContent:'',//默认搜索的关键词
    hotList:[],//热搜榜的数据
    searchValue:'',//搜索框中的内容
    searchList:[],//搜索到额模糊查询的数据
    historyList:[]//存储搜索历史记录
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 初始化的数据
    this.initData()
    // 从缓存中将历史搜索数据读取出的方法
    this.getHistoryList()
  },
  // 获取默认的关键词和搜索榜的数据
  async initData(){
    const searchData = await request('/search/default')
    const hotListData = await request('/search/hot/detail')
    // 更新数据
    this.setData({
      searchContent:searchData.data.showKeyword,
      hotList:hotListData.data
    })
    // console.log(this.data.hotList);
  },
  // 输入搜索内容后,获取对用的模糊查询的数据并暂时,还要设置历史记录的相关操作
  handlerSearchContent(event){
    // console.log(event);
    // 获取文本框中输入的数据
    const searchValue = event.detail.value
    this.setData({
      searchValue
    })
    // 如果文本框中没有数据就没有必要发送请求
    // 截流的操作
    // 调用接口发送请求
    if (isSend) {
      return
    }
    isSend = true
    this.getSearchData()
    setTimeout(() => {
      isSend = false
    }, 300);
  },
  async getSearchData(){
    const {searchValue,historyList} = this.data
    // 此时文本框中没有数据,不需要发请求
    if (!searchValue) {
      this.setData({
        // 如果文本框中没哟输入内容,则模糊查询的数组数据直接清空
        searchList:[]
      })
      return
    }
    const searchListData = await request('/search',{keywords:searchValue,limit:10})
    // 输出数据
    // console.log(result);
    this.setData({
      searchList:searchListData.result.songs
    })
    // 查看是否有一样的内容
    if (historyList.indexOf(searchValue) !== -1) {
      historyList.splice(historyList.indexOf(searchValue),1)
    }
    // 把当前文本框中输入的数据存储到一个数组容器中
    historyList.unshift(searchValue)
    // 更新历史记录数据
    this.setData({
      historyList
    })
    // 把历史记录缓存起来
    wx.setStorageSync('historyList', historyList);
  },
  // 从缓存中读取出历史记录的方法
  getHistoryList(){
    const historyList = wx.getStorageSync('historyList')
    // console.log(historyList);
    if (historyList) {
      this.setData({
        historyList
      })
    }
  },
  // 点击删除搜索框内容,清除搜索框数据
  clear(){
    this.setData({
      searchValue:'',
      searchList:[]
    })
    
  },
  // 清除搜索历史记录
  deleateHistory(){
    // 弹出对话框
    wx.showModal({
      title: '清空历史记录',
      content: '您确定要清空您的历史记录吗',
      showCancel: true,
      success: (result) => {
        if(result.confirm){
          // 清空历史记录及干掉缓存信息
          this.setData({
            historyList:[]
          })
          wx.removeStorageSync('historyList');
        }
      }
    });
  },
  // 点击取消回到视频页面
  toVideo(){
    wx.reLaunch({
      url:'/pages/video/video'
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})